![]() |
![]() Every method of data entry on the Macintosh, be it a keyboard, mouse, trackball, touchpad, joystick, graphics tablet, and so forth, uses the same connection and data transmission vehicle -- the Apple Desktop Bus (ADB). ADB has been the port of choice since the introduction of the Mac SE in 1987. Most Macs today provide two ADB ports (but one bus). ADB ports let you chain input devices from one to another, connecting multiple peripherals to the same port. Up to 16 devices can be supported by a single ADB port, although Apple recommends that you limit connections to three for optimal performance. All devices attached to the ADB port communicate with the Mac over a single bus. Each input device has a unique identifying address and the Mac can address more than one address at a time. The CPU controls the flow of information into the Mac. Each device requests permission to send data across the bus. The CPU cannot be interrupted while it is processing, but will only receive information when it asks for it. This is called asynchronous serial communications, since data does not automatically flow down the pipeline, but flows intermittantly based on a signal from the CPU. Because the ADB is a serial bus and data bits flow one after another, it is not as fast as the parallel flow of information provided by SCSI buses. The ADB transmits data at a maximum speed of 4,500 bits per second (bps). The ADB connector is simple -- four pins: one to send the ADB signals, one to supply the required power (five volts) to the input device, one to act as a ground wire, and a fourth to let you start up the Mac from your keyboard. As shown in the illustration, the Mac communicates with data input devices over the ADB via two transceiver chips: one on the logic board and the other in the input device. The ADB Transceiver converts bus signals from the Mac's Cuda (ADB Manager) chip into a signal that is understood by the input device. The exchange of information is further managed by one or more Versatile Interface Adapter (VIA) chips that provide RAM and storage support for the transaction. When you press a key on your keyboard, a switch is activated that changes the flow of current from the key to the input device's microprocessor. The microprocessor sends a binary representation of the key's character to the buffer. The buffer can hold five or six characters. The keyboard's ADB Transceiver sends a service request to the Mac's CPU. The keyboard's ADB Transceiver will respond only if the Mac is available to receive data. If the CPU is available, the Mac's ADB Transceiver sends an interrupt signal to the VIA chip, which tells the Mac operating system that there is incoming data. The Cuda chip uses the Mac's ADB Transceiver to poll all data input devices to find out which one is sending data. The keyboard's ADB Transceiver responds to the poll and the Cuda sends the ADB Transceiver a "Talk" command. The keyboard then sends the contents of the buffer to the Mac. The data is sent to the CPU as bursts of electric currents (measured in the strength and length of volts) -- very low for "0" and very high for "1." When the Mac's ADB Transceiver has received the contents of the buffer, it in turn passes the data to the VIA. The VIA sends a message to the Mac Operating System's Event Manager, which passes it to the Toolbox Event Manager; the Toolbox displays the character on the screen or carries out the key combination, and awaits the next instruction.
See Also
|